package android.animationtext;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.RotateAnimation;
import android.widget.ImageView;

/**
 * 补间动画
 * 补间动画的种类：
 * 1：旋转补间动画：RotateAnimation
 *
 * 2：缩放补间动画：ScaleAnimation
 *
 * 3：透明补间动画： AlphaAnimation
 *
 * 4：移动补间动画：TranslateAnimation
 *
 * 5：动画集 ： AnimationSet
 *
 *
 * 动画定义的方式：
 * 1：布局文件定义动画；
 * 2：代码定义动画。
 * */
public class BetweenActivity extends Activity implements View.OnClickListener {

private ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_between);
        imageView = (ImageView) findViewById(R.id.ab_imageView);
      if (imageView!=null){
          imageView.setOnClickListener(BetweenActivity.this);

      }


    }
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.ab_imageView:
//                playRotea();
              playRotateCode();
                break;
        }
    }

    /**
     * 播放旋转动画
     * */

    private void playRotea(){

     //使用AnimationUtils 加载anim目录下的动画文件。
      Animation animation = AnimationUtils.loadAnimation(this,R.anim.rotate);

        //播放动画
        imageView.startAnimation(animation);
    }

    // 透明动画
    public void alphaImpl(View v) {

        Animation animation = AnimationUtils.loadAnimation(this,
                R.anim.alpha);
        imageView.startAnimation(animation);
    }

    // 缩放动画
    public void scaleImpl(View view) {
        Animation animation = AnimationUtils.loadAnimation(this,
                R.anim.scale);
        imageView.startAnimation(animation);

    }
    // 移动效果
    public void translateImpl(View view) {
        Animation animation = AnimationUtils.loadAnimation(this,
                R.anim.translate);

        animation.setRepeatCount(Animation.INFINITE);//循环显示
        imageView.startAnimation(animation);
    }

    // 综合实现set_demo.xml中的动画
    public void setAll(View view) {
        Animation animation = AnimationUtils.loadAnimation(this,
                R.anim.set);
        imageView.startAnimation(animation);
    }

    /**
     * 代码实现
     *
     * */
    private void playRotateCode(){
// 构造函数一：该构造函数只是定义了动画的fromDegrees 和 toDegrees
//  RotateAnimation animation = new RotateAnimation(3.f,500.f);

        //四个参数的构造函数定义了圆心点
//        RotateAnimation animation = new RotateAnimation(3.f,600.f,100f,300f);

        //  相对二来说：使用相对关系定义动画圆心；
        //RELATIVE_TO_SELF：相对控件自己，值是浮点类型；
        //比如1f代表控件的100%，0.3f代表30%；
        //RELATIVE_TO_PARENT:代表相对于父控件而言
    RotateAnimation animation = new RotateAnimation(3.f,600.f,
            Animation.RELATIVE_TO_SELF,1f,
            Animation.RELATIVE_TO_PARENT,1f);

        animation.setDuration(3000);
        animation.setRepeatCount(Animation.INFINITE);
        animation.setBackgroundColor(Color.BLACK);
        animation.setRepeatMode(Animation.REVERSE);//反向
        animation.setStartOffset(300);//起始偏移



    imageView.startAnimation(animation);


    }



}
